Systems and methods for basic input/output system driver offline protocol

ABSTRACT

A method may include during a Pre-Extensible Firmware Interface Initialization phase of a BIOS, receiving a mailbox command from a management controller of an information handling system, the mailbox command including information regarding a driver image stored in computer-readable media associated with the BIOS, the information including uniquely-identifying information for the driver image. The method may also include, during a Driver Execution Environment phase of the BIOS, locating the driver image stored in the computer-readable media, verifying the driver image based on the information from the mailbox command, extracting the driver image from the computer-readable media in response to verifying the driver image, and causing a driver stored within the driver image to load and execute during BIOS execution.

TECHNICAL FIELD

The present disclosure relates in general to information handlingsystems, and more particularly to systems and method for enabling anoffline protocol for updating drivers of a basic input/output system(BIOS).

BACKGROUND

As the value and use of information continues to increase, individualsand businesses seek additional ways to process and store information.One option available to users is information handling systems. Aninformation handling system generally processes, compiles, stores,and/or communicates information or data for business, personal, or otherpurposes thereby allowing users to take advantage of the value of theinformation. Because technology and information handling needs andrequirements vary between different users or applications, informationhandling systems may also vary regarding what information is handled,how the information is handled, how much information is processed,stored, or communicated, and how quickly and efficiently the informationmay be processed, stored, or communicated. The variations in informationhandling systems allow for information handling systems to be general orconfigured for a specific user or specific use such as financialtransaction processing, airline reservations, enterprise data storage,or global communications. In addition, information handling systems mayinclude a variety of hardware and software components that may beconfigured to process, store, and communicate information and mayinclude one or more computer systems, data storage systems, andnetworking systems.

A critical component of modern information handling systems is the BIOS.A BIOS may comprise boot firmware configured to be the first codeexecuted by a processor of an information handling system when theinformation handling system is booted and/or powered on, and serves toinitialize information handling resources of the information handlingsystem and/or initialize interoperation of the information handlingsystem with other information handling systems. In addition to BIOS, aninformation handling system may include critical firmware for one ormore other components of the information handling system.

Traditionally, updating a BIOS to add a new feature to support newhardware, to fix a bug, or to add security revisions requires a newversion build or “spin” of the BIOS. However, despite the advantages andcriticality of BIOS updates, many problems and disadvantages occur withrespect to BIOS updates.

For example, spinning a new BIOS may be costly in terms of time andmoney to information handling system manufacturers as such spin mayrequire a full validation cycle to core and value-added featurestesting. Further, even after the update, spin, and validation efforts,customers/end users are often slow or reluctant to adapt to new BIOSupdates. Accordingly, it may be desirable to be able to securely updatea BIOS without requiring spinning of a new BIOS.

SUMMARY

In accordance with the teachings of the present disclosure, thedisadvantages and problems associated with existing approaches toupdating a BIOS may be reduced or eliminated.

In accordance with embodiments of the present disclosure, an informationhandling system may include a processor, a memory communicativelycoupled to the processor, and a basic input/output system (BIOS)communicatively coupled to the processor and comprising a program ofexecutable instructions configured to, when read and executed by theprocessor during a Pre-Extensible Firmware Interface Initializationphase of the BIOS, receive a mailbox command from a managementcontroller of the information handling system, the mailbox commandincluding information regarding a driver image stored incomputer-readable media associated with the BIOS, the informationincluding uniquely-identifying information for the driver image. TheBIOS may also be configured to, during a Driver Execution Environmentphase of the BIOS, locate the driver image stored in thecomputer-readable media, verify the driver image based on theinformation from the mailbox command, extract the driver image from thecomputer-readable media in response to verifying the driver image, andcause a driver stored within the driver image to load and execute duringBIOS execution.

In accordance with these and other embodiments of the presentdisclosure, a method may include during a Pre-Extensible FirmwareInterface Initialization phase of a BIOS, receiving a mailbox commandfrom a management controller of an information handling system, themailbox command including information regarding a driver image stored incomputer-readable media associated with the BIOS, the informationincluding uniquely-identifying information for the driver image. Themethod may also include, during a Driver Execution Environment phase ofthe BIOS, locating the driver image stored in the computer-readablemedia, verifying the driver image based on the information from themailbox command, extracting the driver image from the computer-readablemedia in response to verifying the driver image, and causing a driverstored within the driver image to load and execute during BIOSexecution.

In accordance with these and other embodiments of the presentdisclosure, an article of manufacture may include a non-transitorycomputer-readable medium and computer-executable instructions carried onthe computer-readable medium, the instructions readable by a processor,the instructions, when read and executed, for causing the processor to,during a Pre-Extensible Firmware Interface Initialization phase of aBIOS, receive a mailbox command from a management controller of aninformation handling system, the mailbox command including informationregarding a driver image stored in a storage partition associated withthe BIOS, the information including uniquely-identifying information forthe driver image. The program of instructions may further cause theprocessor to, during a Driver Execution Environment phase of the BIOS,locate the driver image stored in the computer-readable media, verifythe driver image based on the information from the mailbox command,extract the driver image from the computer-readable media in response toverifying the driver image, and cause a driver stored within the driverimage to load and execute during BIOS execution.

Technical advantages of the present disclosure may be readily apparentto one skilled in the art from the figures, description and claimsincluded herein. The objects and advantages of the embodiments will berealized and achieved at least by the elements, features, andcombinations particularly pointed out in the claims.

It is to be understood that both the foregoing general description andthe following detailed description are examples and explanatory and arenot restrictive of the claims set forth in this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

A more complete understanding of the present embodiments and advantagesthereof may be acquired by referring to the following description takenin conjunction with the accompanying drawings, in which like referencenumbers indicate like features, and wherein:

FIG. 1 illustrates a block diagram of an example system for enabling aBIOS driver offline protocol, in accordance with embodiments of thepresent disclosure; and

FIGS. 2A and 2B (which may be referred to herein collectively as “FIG. 2”) illustrate a flowchart of an example method for enabling a BIOSdriver offline protocol, in accordance with embodiments of the presentdisclosure.

DETAILED DESCRIPTION

Preferred embodiments and their advantages are best understood byreference to FIGS. 1 and 2 , wherein like numbers are used to indicatelike and corresponding parts.

For the purposes of this disclosure, an information handling system mayinclude any instrumentality or aggregate of instrumentalities operableto compute, classify, process, transmit, receive, retrieve, originate,switch, store, display, manifest, detect, record, reproduce, handle, orutilize any form of information, intelligence, or data for business,scientific, control, entertainment, or other purposes. For example, aninformation handling system may be a personal computer, a personaldigital assistant (PDA), a consumer electronic device, a network storagedevice, or any other suitable device and may vary in size, shape,performance, functionality, and price. The information handling systemmay include memory, one or more processing resources such as a centralprocessing unit (“CPU”) or hardware or software control logic.Additional components of the information handling system may include oneor more storage devices, one or more communications ports forcommunicating with external devices as well as various input/output(“'I/O”) devices, such as a keyboard, a mouse, and a video display. Theinformation handling system may also include one or more buses operableto transmit communication between the various hardware components.

For the purposes of this disclosure, computer-readable media may includeany instrumentality or aggregation of instrumentalities that may retaindata and/or instructions for a period of time. Computer-readable mediamay include, without limitation, storage media such as a direct accessstorage device (e.g., a hard disk drive or floppy disk), a sequentialaccess storage device (e.g., a tape disk drive), compact disk, CD-ROM,DVD, random access memory (RAM), read-only memory (ROM), electricallyerasable programmable read-only memory (EEPROM), and/or flash memory; aswell as communications media such as wires, optical fibers, microwaves,radio waves, and other electromagnetic and/or optical carriers; and/orany combination of the foregoing.

For the purposes of this disclosure, information handling resources maybroadly refer to any component system, device or apparatus of aninformation handling system, including without limitation processors,service processors, basic input/output systems, buses, memories, I/Odevices and/or interfaces, storage resources, network interfaces,motherboards, and/or any other components and/or elements of aninformation handling system.

FIG. 1 illustrates a block diagram of an example system 100 for enablinga BIOS driver offline protocol, in accordance with embodiments of thepresent disclosure. As shown in FIG. 1 , system 100 may includeinformation handling system 102, network 120, and management server 122.

In some embodiments, an information handling system 102 may comprise apersonal computer. In some embodiments, an information handling system102 may comprise or be an integral part of a server. In otherembodiments, an information handling system 102 may comprise a portableinformation handling system (e.g., a laptop or notebook, etc.). Asdepicted in FIG. 1 , an information handling system 102 may include aprocessor 103, a memory 104 communicatively coupled to processor 103, aBIOS 105 communicatively coupled to processor 103, a managementcontroller 112 communicatively coupled to processor 103, and a networkinterface 108 communicatively coupled to processor 103.

Processor 103 may include any system, device, or apparatus configured tointerpret and/or execute program instructions and/or process data, andmay include, without limitation, a microprocessor, microcontroller,digital signal processor (DSP), application specific integrated circuit(ASIC), or any other digital or analog circuitry configured to interpretand/or execute program instructions and/or process data. In someembodiments, processor 103 may interpret and/or execute programinstructions and/or process data stored in memory 104 and/or anothercomponent of information handling system 102.

Memory 104 may be communicatively coupled to processor 103 and mayinclude any system, device, or apparatus configured to retain programinstructions and/or data for a period of time (e.g., computer-readablemedia). Memory 104 may include RAM, EEPROM, a PCMCIA card, flash memory,magnetic storage, opto-magnetic storage, or any suitable selectionand/or array of volatile or non-volatile memory that retains data afterpower to information handling system 102 is turned off.

As shown in FIG. 1 , memory 104 may have stored thereon an operatingsystem 106. Operating system 106 may comprise any program of executableinstructions, or aggregation of programs of executable instructions,configured to manage and/or control the allocation and usage of hardwareresources such as memory, processor time, disk space, and input andoutput devices, and provide an interface between such hardware resourcesand application programs hosted by operating system 106. In addition,operating system 106 may include all or a portion of a network stack fornetwork communication via a network interface (e.g., network interface108 for communication over a data network). Active portions of operatingsystem 106 may be transferred to memory 104 for execution by processor103. Although operating system 106 is shown in FIG. 1 as stored inmemory 104, in some embodiments operating system 106 may be stored instorage media accessible to processor 103, and active portions ofoperating system 106 may be transferred from such storage media tomemory 104 for execution by processor 103.

As shown in FIG. 1 , operating system 106 may have embodied therein afirmware update agent 110. Firmware update agent 110 may comprise anysuitable program of instructions that is a component of operating system106 or an application program configured to run on operating system 106,and may be configured to, when read and executed by processor 103,verify the secure boot of operating system 106 and securely communicateuniquely identifying information associated with a BIOS firmware updateto management controller 112, as described in greater detail below.

As also shown in FIG. 1 , memory 104 may also have stored thereon anExtensible Firmware Interface (EFI) Storage Partition (ESP) 118, whichmay be stored in a non-volatile portion of memory 104 (e.g., SerialPeripheral Interface read-only memory). ESP 118 may comprise anysuitable partition on a computer-readable medium (e.g., a hard diskdrive or solid-state drive) that BIOS 105 may use to load installedoperating systems and/or various utilities. For example, ESP 118 mayinclude boot loaders or kernel images for all installed operatingsystems stored in other partitions (e.g., operating system 106), devicedriver files for hardware devices present in information handling system102 and used by firmware 116 at boot time, system utility programs thatare intended to be executed before an operating system is booted, datafiles such as error logs, etc.

BIOS 105 may include any system, device, or apparatus configured toidentify, test, and/or initialize information handling resources ofinformation handling system 102, and/or initialize interoperation ofinformation handling system 102 with other information handling systems.“BIOS” may broadly refer to any system, device, or apparatus configuredto perform such functionality, including without limitation, a UnifiedExtensible Firmware Interface (UEFI). In some embodiments, BIOS 105 maybe implemented as a program of instructions that may be read by andexecuted on processor 103 to carry out the functionality of BIOS 105. Inthese and other embodiments, BIOS 105 may comprise boot firmwareconfigured to be the first code executed by processor 103 wheninformation handling system 102 is booted and/or powered on. As part ofits initialization functionality, code for BIOS 105 may be configured toset components of information handling system 102 into a known state, sothat one or more applications (e.g., an operating system or otherapplication programs) stored on compatible media (e.g., disk drives) maybe executed by processor 103 and given control of information handlingsystem 102. As shown in FIG. 1 , BIOS 105 may include firmware 116.

Firmware 116 may comprise any program of executable instructions, oraggregation of programs of executable instructions, configured toimplement BIOS 105 and its functionality. Accordingly, firmware 116 mayinclude the core executable code of BIOS 105.

Management controller 112 may be configured to provide out-of-bandmanagement facilities for management of information handling system 102.Such management may be made by management controller 112 even ifinformation handling system 102 is powered off or powered to a standbystate. Accordingly, in some embodiments, such management may be madethrough a dedicated management communications channel which may bephysically and/or logically isolated from an “in-band” communicationschannel used by a host system of information handling system 102 whenpowered on. In certain embodiments, management controller 112 mayinclude or may be an integral part of a baseboard management controller(BMC), a remote access controller (e.g., a Dell Remote Access Controlleror Integrated Dell Remote Access Controller), or an enclosure controller(EC). In other embodiments, management controller 112 may include or maybe an integral part of a chassis management controller (CMC).

In accordance with the present disclosure, management controller 112 maybe configured to, in connection with a driver update, receive uniquelyidentifying information associated with a BIOS firmware update fromfirmware update agent 110 and communicate a mailbox command to BIOSfirmware 116, as described in greater detail below.

Network interface 108 may comprise any suitable system, apparatus, ordevice operable to serve as an interface between information handlingsystem 102 and one or more other information handling systems via anin-band management network. Network interface 108 may enable informationhandling system 102 to communicate using any suitable transmissionprotocol and/or standard. In these and other embodiments, networkinterface 108 may comprise a network interface card, or “NIC.” In someembodiments, network interface 108 may comprise a 10 gigabit Ethernetnetwork interface. In these and other embodiments, network interface 108may be enabled as a local area network (LAN)-on-motherboard (LOM) card.Network interface 108 may be configured to communicate via wire-linetransmissions, wireless transmission, or both.

In addition to processor 103, memory 104, BIOS 105, managementcontroller 112, and network interface 108, information handling system102 may include one or more other information handling resources.

Network 120 may be a network and/or fabric configured to coupleinformation handling system 102, management server 122, and/or one ormore other information handling systems to one another. In these andother embodiments, network 120 may include a communicationinfrastructure, which provides physical connections, and a managementlayer, which organizes the physical connections and information handlingsystems communicatively coupled to network 120. Network 120 may beimplemented as, or may be a part of, a storage area network (SAN),personal area network (PAN), local area network (LAN), a metropolitanarea network (MAN), a wide area network (WAN), a wireless local areanetwork (WLAN), a virtual private network (VPN), an intranet, theInternet or any other appropriate architecture or system thatfacilitates the communication of signals, data and/or messages(generally referred to as data). Network 120 may transmit data viawireless transmissions and/or wire-line transmissions using any storageand/or communication protocol, including without limitation, FibreChannel, Frame Relay, Asynchronous Transfer Mode (ATM), Internetprotocol (IP), other packet-based protocol, small computer systeminterface (SCSI), Internet SCSI (iSCSI), Serial Attached SCSI (SAS) orany other transport that operates with the SCSI protocol, advancedtechnology attachment (ATA), serial ATA (SATA), advanced technologyattachment packet interface (ATAPI), serial storage architecture (SSA),integrated drive electronics (IDE), and/or any combination thereof.Network 120 and its various components may be implemented usinghardware, software, or any combination thereof.

Management server 122 may comprise any information handling systemincluding requisite hardware, software, and/or firmware for interfacinginformation handling system 102 via network 120 in order to performend-to-end workload modeling, as described in greater detail below.

As depicted in FIG. 1 , management server 122 may include a processor123, a memory 124 communicatively coupled to processor 123, and anetwork interface 128 communicatively coupled to processor 123.

Processor 123 may include any system, device, or apparatus configured tointerpret and/or execute program instructions and/or process data, andmay include, without limitation a microprocessor, microcontroller, DSP,ASIC, or any other digital or analog circuitry configured to interpretand/or execute program instructions and/or process data. In someembodiments, processor 123 may interpret and/or execute programinstructions and/or process data stored in memory 124 and/or anothercomponent of management server 122.

Memory 124 may be communicatively coupled to processor 123 and mayinclude any system, device, or apparatus configured to retain programinstructions and/or data for a period of time (e.g., computer-readablemedia). Memory 124 may include RAM, EEPROM, a PCMCIA card, flash memory,magnetic storage, opto-magnetic storage, or any suitable selectionand/or array of volatile or non-volatile memory that retains data afterpower to management server 122 is turned off.

As shown in FIG. 1 , memory 124 may have a driver deployment service 126stored thereon. Driver deployment service 126 may comprise any suitableprogram of instructions configured to, when loaded by processor 123 frommemory 124, build driver images and manage deployment of driver imagesto information handling system 102 via network 120, as set forth ingreater detail below.

Network interface 128 may comprise any suitable system, apparatus, ordevice operable to serve as an interface between management server 122and network 120. Network interface 128 may enable management server 122to communicate using any suitable transmission protocol and/or standard,including any of the protocols and/or standards described above withrespect to network 120. In these and other embodiments, networkinterface 128 may comprise a NIC.

In addition to information handling system 102, network 120, andmanagement server 122, system 100 may include one or more otherinformation handling resources.

FIG. 2 illustrates a flowchart of an example method 200 for enabling aBIOS driver offline protocol, in accordance with embodiments of thepresent disclosure. According to certain embodiments, method 200 maybegin at step 202. As noted above, teachings of the present disclosuremay be implemented in a variety of configurations of informationhandling system 102. As such, the preferred initialization point formethod 200 and the order of the steps comprising method 200 may dependon the implementation chosen.

At step 202, driver deployment service 126 may build a driver image withmetadata of compatible BIOS revisions, along with core dependencyprotocol unique identifiers (e.g., global unique identifiers or “GUIDs”)with the order of driver loading inside the BIOS driver framework. Insome embodiments, driver deployment service 126 may add a publisher fileinside the driver image to identify the driver owner. At step 204,driver deployment service 126 may sign the driver image with a platformkey associated with information handling system 102.

At step 206, driver deployment service 126 may create a driver fileexecutable including the driver image. At step 208, driver deploymentservice 126 may release the driver file executable to informationhandling system 102, delivering such driver file executable toinformation handling system 102 via a “push” or in response to a “pull”request from information handling system 102. Upon receipt of the driverfile executable, the driver file executable may be stored in memory 104as firmware update agent 110.

At step 210, a user (e.g., end user or administrator) may executefirmware update agent 110 during runtime of operating system 106. Atstep 212, firmware update agent 110 may verify that operating system 106booted with secure boot, to ensure that the firmware update is secure.

At step 214, the firmware update agent 110 may identify the hardwarecomponents of information handling system 102 compatible with theupdated or new driver of the driver image. At step 216, if theupdated/new driver is compatible with the hardware components ofinformation handling system 102, firmware update agent 110 may store thedriver image to ESP 118.

At step 218, firmware update agent 110 may securely communicate uniquelyidentifying information (e.g., a GUID) and other metadata information(e.g., driver image location, file name, etc.) associated with thedriver image to management controller 112. For example, suchcommunication may leverage existing known solutions for securelycommunicating memory-mapped input/output (MMIO) commands from anoperating system to a management controller.

At step 220, upon a subsequent boot of information handling system 102and during the Pre-EFI Execution Initialization (PEI) phase of BIOS 105,management controller 112 may communicate a mailbox command to BIOS 105indicating the presence of the new driver image stored in ESP 118 andincluding the uniquely identifying information and other metadatainformation associated with the new driver image.

At step 222, at or near the beginning of the Driver ExecutionEnvironment (DXE) phase of BIOS 105, BIOS 105 may execute a driveroffline protocol to locate the driver image from ESP 118. At step 224,BIOS 105 may use the uniquely identifying information and/or othermetadata information received from the mailbox command of managementcontroller 112 to verify the corresponding uniquely identifyinginformation and/or other metadata information stored in the driver imageon ESP 118. At step 226, assuming that the driver image is verified,BIOS 105 may extract information from the driver image (e.g., BIOSrevision, dependency information, etc.) to ensure compatibility of thedriver.

At step 228, BIOS 105 may determine if the driver is a PEI phase driveror a DXE phase driver. If a PEI phase driver, method 200 may proceed tostep 230. If a DXE phase driver, method 200 may proceed to step 232.

At step 230, BIOS 105 may reboot information handling system 102 withthe PEI driver in memory to load the new PEI driver during the reboot.After step 230, method 200 may end.

At step 232, BIOS 105 may dispatch the driver into memory, and the newdriver may load and begin executing during the then-present bootsession. After step 232, method 200 may end.

Although FIG. 2 discloses a particular number of steps to be taken withrespect to method 200, it may be executed with greater or fewer stepsthan those depicted in FIG. 2 . In addition, although FIG. 2 discloses acertain order of steps to be taken with respect to method 200, the stepscomprising method 200 may be completed in any suitable order.

Method 200 may be implemented using information handling system 102,management server 122, components thereof or any other system operableto implement method 200. In certain embodiments, method 200 may beimplemented partially or fully in software and/or firmware embodied incomputer-readable media.

As used herein, when two or more elements are referred to as “coupled”to one another, such term indicates that such two or more elements arein electronic communication or mechanical communication, as applicable,whether connected indirectly or directly, with or without interveningelements.

This disclosure encompasses all changes, substitutions, variations,alterations, and modifications to the example embodiments herein that aperson having ordinary skill in the art would comprehend. Similarly,where appropriate, the appended claims encompass all changes,substitutions, variations, alterations, and modifications to the exampleembodiments herein that a person having ordinary skill in the art wouldcomprehend. Moreover, reference in the appended claims to an apparatusor system or a component of an apparatus or system being adapted to,arranged to, capable of, configured to, enabled to, operable to, oroperative to perform a particular function encompasses that apparatus,system, or component, whether or not it or that particular function isactivated, turned on, or unlocked, as long as that apparatus, system, orcomponent is so adapted, arranged, capable, configured, enabled,operable, or operative. Accordingly, modifications, additions, oromissions may be made to the systems, apparatuses, and methods describedherein without departing from the scope of the disclosure. For example,the components of the systems and apparatuses may be integrated orseparated. Moreover, the operations of the systems and apparatusesdisclosed herein may be performed by more, fewer, or other componentsand the methods described may include more, fewer, or other steps.Additionally, steps may be performed in any suitable order. As used inthis document, “each” refers to each member of a set or each member of asubset of a set.

Although exemplary embodiments are illustrated in the figures anddescribed below, the principles of the present disclosure may beimplemented using any number of techniques, whether currently known ornot. The present disclosure should in no way be limited to the exemplaryimplementations and techniques illustrated in the drawings and describedabove.

Unless otherwise specifically noted, articles depicted in the drawingsare not necessarily drawn to scale.

All examples and conditional language recited herein are intended forpedagogical objects to aid the reader in understanding the disclosureand the concepts contributed by the inventor to furthering the art, andare construed as being without limitation to such specifically recitedexamples and conditions. Although embodiments of the present disclosurehave been described in detail, it should be understood that variouschanges, substitutions, and alterations could be made hereto withoutdeparting from the spirit and scope of the disclosure.

Although specific advantages have been enumerated above, variousembodiments may include some, none, or all of the enumerated advantages.Additionally, other technical advantages may become readily apparent toone of ordinary skill in the art after review of the foregoing figuresand description.

To aid the Patent Office and any readers of any patent issued on thisapplication in interpreting the claims appended hereto, applicants wishto note that they do not intend any of the appended claims or claimelements to invoke 35 U.S.C. § 112(f) unless the words “means for” or“step for” are explicitly used in the particular claim.

What is claimed is:
 1. An information handling system comprising: aprocessor; a memory communicatively coupled to the processor; and abasic input/output system (BIOS) communicatively coupled to theprocessor and comprising a program of executable instructions configuredto, when read and executed by the processor: during a Pre-ExtensibleFirmware Interface Initialization phase of the BIOS, receive a mailboxcommand from a management controller of the information handling system,the mailbox command including information regarding a driver imagestored in computer-readable media associated with the BIOS, theinformation including uniquely-identifying information for the driverimage; and during a Driver Execution Environment phase of the BIOS:locate the driver image stored in the computer-readable media; verifythe driver image based on the information from the mailbox command;extract the driver image from the computer-readable media in response toverifying the driver image; and cause a driver stored within the driverimage to load and execute during BIOS execution.
 2. The informationhandling system of claim 1, wherein the computer-readable mediacomprises an Extensible Firmware Interface storage partition.
 3. Theinformation handling system of claim 1, wherein the mailbox command is amemory-mapped input/output command.
 4. The information handling systemof claim 1, further comprising an operating system embodied in thememory and configured to, when executed by the processor: receive anexecutable file including the driver image; and during execution of theoperating system, execute the executable file and store the driver imageto the computer-readable medium.
 5. The information handling system ofclaim 1, wherein causing the driver image to load and execute duringBIOS execution comprises, in response to determining that the driver isa Pre-Extensible Firmware Interface Initialization phase driver, causingthe BIOS to reboot and execute the driver in the Pre-Extensible FirmwareInterface Initialization phase after BIOS execution after the reboot. 6.The information handling system of claim 1, wherein causing the driverimage to load and execute during BIOS execution comprises, in responseto determining that the driver is a Driver Execution Environment phasedriver, causing the BIOS to execute the driver within the then-currentboot session of the BIOS.
 7. A method comprising: during aPre-Extensible Firmware Interface Initialization phase of a BIOS,receiving a mailbox command from a management controller of aninformation handling system, the mailbox command including informationregarding a driver image stored in computer-readable media associatedwith the BIOS, the information including uniquely-identifyinginformation for the driver image; and during a Driver ExecutionEnvironment phase of the BIOS: locating the driver image stored in thecomputer-readable media; verifying the driver image based on theinformation from the mailbox command; extracting the driver image fromthe computer-readable media in response to verifying the driver image;and causing a driver stored within the driver image to load and executeduring BIOS execution.
 8. The method of claim 7, wherein thecomputer-readable media comprises an Extensible Firmware Interfacestorage partition.
 9. The method of claim 7, wherein the mailbox commandis a memory-mapped input/output command.
 10. The method of claim 7further comprising, in an operating system embodied in a memory of theinformation handling system: receiving an executable file including thedriver image; and during execution of the operating system, executingthe executable file and store the driver image to the computer-readablemedium.
 11. The method of claim 7, wherein causing the driver image toload and execute during BIOS execution comprises, in response todetermining that the driver is a Pre-Extensible Firmware InterfaceInitialization phase driver, causing the BIOS to reboot and execute thedriver in the Pre-Extensible Firmware Interface Initialization phaseafter BIOS execution after the reboot.
 12. The method of claim 7,wherein causing the driver image to load and execute during BIOSexecution comprises, in response to determining that the driver is aDriver Execution Environment phase driver, causing the BIOS to executethe driver within the then-current boot session of the BIOS.
 13. Anarticle of manufacture comprising: a non-transitory computer-readablemedium; and computer-executable instructions carried on thecomputer-readable medium, the instructions readable by a processor, theinstructions, when read and executed, for causing the processor to:during a Pre-Extensible Firmware Interface Initialization phase of aBIOS, receive a mailbox command from a management controller of aninformation handling system, the mailbox command including informationregarding a driver image stored in a storage partition associated withthe BIOS, the information including uniquely-identifying information forthe driver image; and during a Driver Execution Environment phase of theBIOS: locate the driver image stored in the computer-readable media;verify the driver image based on the information from the mailboxcommand; extract the driver image from the computer-readable media inresponse to verifying the driver image; and cause a driver stored withinthe driver image to load and execute during BIOS execution.
 14. Thearticle of claim 13, wherein the storage partition comprises anExtensible Firmware Interface storage partition.
 15. The article ofclaim 13, wherein the mailbox command is a memory-mapped input/outputcommand.
 16. The article of claim 13, wherein the driver image is storedin the storage partition by an operating system embodied in a memory ofthe information handling system, and wherein the operating system isconfigured to: receive an executable file including the driver image;and during execution of the operating system, execute the executablefile and store the driver image to the computer-readable medium.
 17. Thearticle of claim 13, wherein causing the driver image to load andexecute during BIOS execution comprises, in response to determining thatthe driver is a Pre-Extensible Firmware Interface Initialization phasedriver, causing the BIOS to reboot and execute the driver in thePre-Extensible Firmware Interface Initialization phase after BIOSexecution after the reboot.
 18. The article of claim 13, wherein causingthe driver image to load and execute during BIOS execution comprises, inresponse to determining that the driver is a Driver ExecutionEnvironment phase driver, causing the BIOS to execute the driver withinthe then-current boot session of the BIOS.